/**
 * 工厂模式
 * 
 * 在简单工厂模式基础上，增加了接口，通过创建不同的工厂实现类，达成创建不同对象的目的。
 * 
 * 对比简单工厂的优点：符合开闭原则，不必每次增加某种类型就去修改Factory，而是直接实现一个新的工厂实现类就可以达成。
 * 
 * 示例
 * 
 * 需求：创建不同的Shape对象
 * 1.设定工厂类
 * 2.设定Shape接口
 * 3.通过创建不同的工厂实现类，创建不同的Shape子类实例
 */
class SimpleMain{
    public static void main(String[] args) {
        
       Shape circle = new CircleFactory().createShape();
       Shape rectangle = new RectangleFactory().createShape();
       Shape square = new SquareFactory().createShape();
        

       circle.draw();
       rectangle.draw();
       square.draw();
    }
}
